1. Technical Field
The VEA Detector and Dynamic Range Controller of the invention concern the accurate measurement of constant or non-constant, periodic or aperiodic, signals and the use of such measurements to control the upstream and/or downstream processing of program signals, including without limitation audio, video, and power signals.
2. Related Art
In the field of program signal processing, for example, audio signal processing, “average” or “peak” signal level detectors in prior art dynamic range controllers detect input level changes by means of non-linear or time-variant filters imposed upon the envelope of the signal. Typically, first order filters have been used. Any such filter with unity gain at DC leaves the static performance of a dynamic range controller unchanged thereby allowing the non-linear processing of that filter to control dynamic signal changes independently.
Unfortunately, methods to control the dynamic response of automatic gain controls (“AGC's”) that can be implemented using simple first-order linear filters are severely limited. An AGC typically does not limit maximum and minimum program signal values, but a dynamic range controller (“DRC”) does limit maximum program signal values and can limit minimum program signal values.
The term “circuit” means a path of signal processing, and with respect to the invention, means a digital signal processing path. It is common to arrange a circuit that responds differently to increasing and decreasing signal levels, however such circuits are almost universally simply a selection between one of two linear filters based upon envelope change direction. Almost always these two filters are simple first order filters used to provide independent “attack” and “release” controls, and cannot separate DC, static, and dynamic control of a program signal.
Prior art audio DRCs, AGCs, and compressors typically provide a user with the ability to prevent distortion (e.g., overmodulation) and a minimum program signal value, but provide little or no ability to artistically “shape” the program signal to produce aesthetically pleasing processing effects related to program signal dynamics or to solve problems associated with dynamic changes. This inability arises in large part from the poor separation of static and dynamic control and the universal use of root mean square (“RMS”) detection of program signal values.
Prior art video DRCs typically provide a user with no ability to artistically “shape” the program signal to produce aesthetically pleasing effects or to solve problems associated with dynamic changes. Video DRCs typically clip hotspots and crush blacks.
The prior art of signal detection in dynamic range controllers used various non-linear approximations to address complex waveforms and/or dynamic signals, and depended on first-order filters that provided limited or poor dynamic control over transfer functions, and failed to convey complex signal dynamics. Although some prior art detectors and DRCs perform signal detection and processing in the log domain, the performance of such devices is not noticeably better than (i) analog devices used with analog signals, or (ii) digital processing using “native” digital signals, e.g., WAV, AIFF, AU, and PCM.
The technical problem to be solved is to provide a means of separating control over DC, static, and dynamic action in the processing, transmission, or management of audio, video, and power signals. The preferred solution would employ an improved means of detection of program signal values, which improved means of detection would allow more flexible control over the “dynamics” of a program signal (i.e., how dynamically-varying signal are sensed as to their “magnitude” or “loudness”, and the degree to which details of a varying signal are reduced or enhanced).
Additional technical problems to be solved are to improve the determination of average signal level of an audio program signal as perceived by the human ear, and determination of average signal level of a displayed video program signal as perceived by the human eye, and to better use the dynamic characteristics of a given program input signal to automatically or semi-automatically control the dynamic range of the program signal.